Amazon Security LakeのサブスクライバーにSumo Logicを設定してみた
みなさん、こんにちは。
明るい笑顔がトレードマーク、ルイボスティーが大好きな芦沢(@ashi_ssan)です。
Amazon Security Lakeは、AWS上で組織のセキュリティデータを一元管理できるようになるフルマネージド型セキュリティデータレイク サービスです。
今回は、Security LakeのサブスクライバーにSumo Logicを設定してみます。
Sumo Logicとは?
Sumo Logicは多くのプロダクトからログを収集し、分析を行うことができるSaaS型の統合ログ管理・分析ツールです。
いわゆるSIEM(Security Information and Event Management) というカテゴリの機能を提供するサービスで、セキュリティ運用の最適化に役に立ちます。
AWSをはじめとするクラウドサービスとの統合がシームレスで簡単に行え、アプリケーションやインフラのログをリアルタイムに可視化できます。
やってみた
ここから実施する手順はSumo Logicの公式ドキュメントにある、Send Data
> Hosted Collectors & Sources
> Amazon / AWS Sources
> Amazon Security Lake
にあるものを利用しています。
手順利用時の注意点として、2023年7月25日現在の上記手順ではおそらく正式リリース前のプレビュー時点のSecurity Lakeのコンソールを元にしています。現在のコンソールの画面配置とは一部異なるため注意してください。この検証では現時点の構成と読み替えて手順を進めました。
Step 0. 前提
以下の前提で手順を進めていきます。
- Sumo Logicのトライアルアカウントの払い出しが完了しており、ログインが可能な状態になっている
- AWSアカウント上でSecurity Lakeの有効化が完了している
Security Lakeの有効化方法については、こちらの記事を参考にしてみてください。
Step 1. アカウント情報収集
後ほど必要になる以下の値を事前に確認します。
- Sumo Logic ID
- 外部 ID
Sumo Logic IDは全アカウント共通で926226587429
です。おそらくSumo Logicが管理しているAWSアカウントのIDだと思われます。
外部IDは(Sumo Deployment):(Sumo LogicのOrganizations ID)
という2つの値を組み合わせた値で指定します。
Sumo Deploymentは、Sumo Logicのエンドポイントがデプロイされている地理的な場所を示しています。au
,cd
,us1,
jp`など2文字程度の小文字のアルファベットで構成されています。
ご利用の環境のSumo Deploymentは、Sumo Logicコンソールログイン時に利用するURL(https://(サービス名).(Sumo Deployment).sumologic.com
)から確認できます。
例えば、URLがhttps://test-ashisan.jp.sumologic.com
だと、 jp
がSumo Deploymentです。
※Sumo Deploymentの参考資料はこちら
Sumo LogicのOrganizations IDは、その名の通りSumo Logic Organizations固有のIDです。
Sumo Logicコンソール上の左タブ内、アカウント名
> Preferences
> My Profile
から確認できます。
ここまでで以下の2つの値を控えられているはずです。
- Sumo Logic ID:
926226587429
[固定値] - 外部ID:
(Sumo Deployment):(Sumo LogicのOrganizations ID)
[環境によって異なる]- 例)
jp:0000000000XXXXXX
- 例)
Step 2. Security Lake サブスクライバー設定
Security Lakeコンソールからサブスクライバーを作成します。
任意サブスクライバー名を入力。
ログとイベントソースはすべてのログ〜
を選択しました。連携するログの種類を制限する場合は特定のログ〜
を選択してください。
データアクセス方法はS3
を選択します。
サブスクライバーの認証情報にStep 1で収集した情報を入力します。
通知の詳細はSubscription endpoint
を指定し、サブスクリプションエンドポイントに https://collectors.sumologic.com を入力します。この値は後の手順で修正します。
サービスアクセスロールは、新規のIAMロールAmazonSecurityLakeSubscriberEventBridge
が自動作成&使用できます。以下のポリシーが付与されるようです。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowInvokeApiDestination", "Effect": "Allow", "Action": [ "events:InvokeApiDestination" ], "Resource": [ "arn:aws:events:{{region}}:{{accountId}}:api-destination/AmazonSecurityLake-[[apiDestinationArn]]" ] } ] }
サブスクライバーが作成できました。続けて、サブスクライバー名をクリックしてください。
サブスクライバーの詳細画面から、IAMロールIDをコピーします。ここに表示されるアカウントIDは固定値のSumo Logic IDです。
Step 3. Sumo LogicでSecurity Lakeソースを作成
Sumo LogicのCollectorにSecurity Lakeを追加します。今回は既存のCollectorがないので、Collectorの作成から行います。
Sumo Logicコンソールの左タブ、Manage Data
> Collection
を選択。
コンソールに表示されるCollectionタブのAdd Collector
をクリック。
任意のNameを指定、TimeZoneをAsia/Tokyo
に変更しSaveをクリック。Collectorが作成できます。
作成したCollectorにAmazon Security Lake
を追加します。
Name欄に任意の値を入力します。
AWS AccessのRole ARN欄に、Security Lakeコンソールの詳細画面で取得したサブスクリプションのIAM Role ARNを入力してください。
そのままSaveすると、Subscription Endpointが表示されます。これを忘れずにコピーします。
再度Collectionタブを確認すると、作成したCollectorが表示されていました。Healthyと表示されており、正常に動作していそうです。
ですが、この時点ではSumo Logicへのログ送信はできていないため、注意しましょう。
Step 4. サブスクリプションエンドポイント設定
Security Lakeコンソールに戻り、サブスクリプションの設定を更新します。
通知の詳細のサブスクリプションエンドポイントの値をStep 3で取得した、Sumo Logic CollectorのSubscription Endpointの値に変更します。
※Step 3でSubscription Endpointをコピーし忘れていた場合は、Sumo Logic CollectorのEdit Source
から同じ情報を確認できます。
問題なく変更できたら完了です。
Step 5. 動作確認
最低限の動作確認として、正常にログが配信されていることを確認してみます。
Sumo Logicコンソール > Collectorで今回作成したCollectorに対しカーソルを合わせると表示されるOpen in Log Search
をクリックしてください。
指定したCollectorの直近15分の間に取得したログを表示させるクエリが自動で入力されます。いい感じにログが流れてきていることが確認できました。
検証は以上です。
最後に
今回はSecurity LakeのサブスクライバーにSumo Logicを設定してみました。
この検証をきっかけに初めてSumo Logicに触れましたが、AWSとの連携がスムーズでとてもいいサービスだなと感じました。
これまで触ったことのあるSIEM製品はAWSのOpenSearchのみでしたが、それと比較するとSumo Logicは以下の点において優れていると感じます。
- インフラの管理が不要で、すぐに使いはじめられる
- AWS以外のサービスとの統合がサポートされている
- ユーザーの管理が簡単
今回ほんのさわりのところまでしか触れられていなく、もっといろいろなことができそうなので引き続き触っていきたいです。
検証によりログを収集できたので、次回はDashboardの作成に着手してみようと思います。
また、今回の検証でも使用しましたがSumo Logicは30日間の無料トライアルが利用できます。少しでいいな、と思った方はまずはトライアルアカウントの作成から是非ともお試しください。
以上、芦沢(@ashi_ssan)でした。